/**
 * 文章相关请求模块
 */
import request from "./request";

/**
 * 获取文章列表
 */
export const getArticles = () => {
  return request({
    method: "GET",
    url: "/article",
    // Body 参数使用 data 设置
    // Query 参数使用 params 设置
    // Headers 参数使用 headers 设置
    // params
  });
};

/**
 * 获取文章频道
 */
export const getArticleChannels = () => {
  return request({
    method: "GET",
    url: "/channels",
  });
};

/**
 * 删除文章
 */
export const deleteArticle = (articleId) => {
  return request({
    method: "DELETE",
    // 接口文档中的写的路径参数需要在 url 中传递
    // 凡是看见接口路径中有的 :xxx 格式的字段，则需要传递路径参数
    url: `/articles/${articleId}`,
  });
};

/**
 * 新建文章
 */
export const addArticle = (data, draft = false) => {
  return request({
    method: "POST",
    url: "/articles",
    params: {
      draft, // 是否存为草稿（true 为草稿）
    },
    data,
  });
};

/**
 * 编辑文章
 */
export const updateArticle = (articleId, data, draft = false) => {
  return request({
    method: "PUT",
    url: `/articles/${articleId}`,
    params: {
      draft, // 是否存为草稿（true 为草稿）
    },
    data,
  });
};

/**
 * 获取指定文章
 */
export const getArticle = (articleId) => {
  return request({
    method: "GET",
    url: `/articles/${articleId}`,
  });
};

/**
 * 修改文章评论状态
 */
export const updateCommentStatus = (articleId, allowComment) => {
  return request({
    method: "PUT",
    url: "/comments/status",
    params: {
      // 对象的属性名不受代码规范限制
      article_id: articleId,
    },
    data: {
      allow_comment: allowComment,
    },
  });
};
